use "$path\datasets\rd_dataset.dta", clear

gen left_wing= ( spd==1 | greens==1 )
gen base_effect=left_wing
gen base_effect_elected_women = base_effect*elected_women
gen base_effect_margin_1=base_effect*margin_1
gen base_effect_inter_1=base_effect*margin_1*elected_women
gen base_effect_margin_2=base_effect*margin_2
gen base_effect_inter_2=base_effect*margin_2*elected_women



local depvar "ch_total_child_places_pc"



bandwidth_and_weights, depvar(`depvar') var(margin_1)  bwmethod(CCT) kernel(tri) degree(1) number_of_elec(num_of_obs)
ivreg2 `depvar' elected_women base_effect base_effect_elected_women  margin_1 inter_1  base_effect_margin_1 base_effect_inter_1  if abs(margin_1)<$bw_opt  [pw=weight] , r cluster(gkz ) partial(margin_1 inter_1 base_effect_margin_1 base_effect_inter_1)
est store m1
estadd local bw "CCT"
estadd local degree "Linear"
estadd local bw_length  $bw_opt
unique gkz_legis_party if e(sample)
estadd local num_of_elections  `"`r(sum)'"'
sum `depvar' if e(sample)
estadd scalar  mean_depvar =r(mean)
estadd scalar sd_depvar =r(sd)
test elected_women+base_effect_elected_women=0



ivreg2 `depvar'  elected_women base_effect base_effect_elected_women  margin_1 inter_1  base_effect_margin_1 base_effect_inter_1    if abs(margin_1)<$bw_half  [pw=weight_half] , r cluster(gkz ) partial(margin_1 inter_1 base_effect_inter_1 )
est store m2
estadd local bw "CCT/2"
estadd local degree "Linear"
estadd local bw_length  $bw_half
unique gkz_legis_party if e(sample)
estadd local num_of_elections  `"`r(sum)'"'
sum `depvar' if e(sample)
estadd scalar  mean_depvar =r(mean)
estadd scalar sd_depvar =r(sd)


ivreg2 `depvar' elected_women base_effect base_effect_elected_women  margin_1 inter_1  base_effect_margin_1 base_effect_inter_1   if abs(margin_1)<$bw_double  [pw=weight_double], r cluster(gkz ) partial(margin_1 inter_1 base_effect_margin_1 base_effect_inter_1 )
est store m3
estadd local bw "2CCT"
estadd local degree "Linear"
estadd local bw_length  $bw_double
unique gkz_legis_party if e(sample)
estadd local num_of_elections  `"`r(sum)'"'
sum `depvar' if e(sample)
estadd scalar  mean_depvar =r(mean)
estadd scalar sd_depvar =r(sd)



bandwidth_and_weights, depvar(`depvar') var(margin_1)  bwmethod(IK) kernel(tri) degree(1) number_of_elec(num_of_obs)
ivreg2 `depvar' elected_women base_effect base_effect_elected_women  margin_1 inter_1  base_effect_margin_1 base_effect_inter_1   if abs(margin_1)<$bw_opt  [pw=weight] , r cluster(gkz ) partial(margin_1 inter_1 base_effect_margin_1 base_effect_inter_1 )
est store m4
estadd local bw "IK"
estadd local degree "Linear"
estadd local bw_length $bw_opt
unique gkz_legis_party if e(sample)
estadd local num_of_elections  `"`r(sum)'"'
sum `depvar' if e(sample)
estadd scalar  mean_depvar =r(mean)
estadd scalar sd_depvar =r(sd)



bandwidth_and_weights, depvar(`depvar') var(margin_1)  bwmethod(CCT) kernel(tri) degree(2) number_of_elec(num_of_obs)
ivreg2 `depvar' elected_women base_effect base_effect_elected_women margin_1 inter_1 margin_2 inter_2   base_effect_margin_1 base_effect_inter_1 base_effect_margin_2 base_effect_inter_2 if abs(margin_1)<$bw_opt  [pw=weight] , r cluster(gkz ) partial(margin_1 inter_1 margin_2 inter_2 base_effect_margin_2 base_effect_inter_2)
est store m5
estadd local bw "CCT"
estadd local degree "Quadratic"
estadd local bw_length $bw_opt
unique gkz_legis_party if e(sample)
estadd local num_of_elections  `"`r(sum)'"'
sum `depvar' if e(sample)
estadd scalar  mean_depvar =r(mean)
estadd scalar sd_depvar =r(sd)



************************************************************************************************************************************



esttab  m1 m2 m3 m4 m5 using TableA15/tableA15_PanelD.txt, style(tab) replace order( ) mlabel(,none) ///
cells(b(label(coef.) star fmt(%8.3f) ) se(label((z)) par fmt(%6.3f))) ///
collabels(none) ///
keep (elected_women base_effect base_effect_elected_women  ) ///
stats(bw bw_length degree N   N_clust mean_depvar sd_depvar , layout( @ @ @ @ @  `""@ (@)""' )  fmt( %~#s %9.2f %~# %9.0g %9.0g  %9.2f %9.2f  ) ///
labels("Bandwidth type" "Bandwidth size" "Polynomial"   "N"  "Municipalities" "Mean (SD)"  )) ///
starlevels(* 0.10 ** 0.05 *** 0.01) ///
varlabels( elected_women "Female victory" base_effect "SPD or Greens" base_effect_elected_women "Female victory $\times$ SPD or Greens"  )  








